# 作业：
# 1、编写函数，从键盘输入一字符串，把其中的各个字符颠倒，标点符号不颠倒，例如，‘I enjoy reading!’，经过函数调用后变为‘gnidaer yojne I’
def StringProcessing(str1):
    str1 = str1[::-1]
    new_str = ""
    for i in str1:
        if i in ",./?!*-+":
            pass
        else:
            new_str+=i
    return new_str


# print(StringProcessing("I enjoy reading!"))

# 2、找出列表 a = ["hello", "world", "yoyo", "congratulations"] 中单词最长的一个
def Longest_word(list1):
    str1 = ""
    for i in range(len(list1)):
        if len(list1[i]) > len(str1):
             str1 = list1[i]
    return str1


# print(Longest_word(["hello", "world", "yoyo", "congratulationasds","congratulations11asd"]))


# 3、如果有一个列表 a = [1,3,5,7,11]，那么如何让它反转成 [11,7,5,3,1]，并且取到奇数位值的数字 [1,5,11]
def OddDigitValue(list1):
    list1.insert(0,"0")
    result_list = []
    for i in range(len(list1)):
        if i%2!=0:
            result_list.append(list1[i])
    return result_list

# print(OddDigitValue([1, 3, 5, 7, 11]))


# 4、输入一个包含若干任意数据类型的列表，输出该列表中等价于True的元素组成的列表，
#
# 例如，输入[1,0,2,None,False,"a"]，输出[1,2,'a']
def newlist(list1):
    result_list = []
    for i in list1:
        if i:
            result_list.append(i)
    return result_list

def newlist1(list1):
    result_list = []
    for i in list1:
        if bool(i) == True:
            result_list.append(i)
    return result_list

# print(newlist([1, 0, 2, None, False, "a"]))
# print(newlist1([1, 0, 2, None, False, "a"]))



# 5、给你一个数组 nums 和一个值 val，你需要 原地 移除所有数值等于 val 的元素，并返回移除后数组的新长度。
# 示例：
# 输入：nums = [3,2,2,3], val = 3
# 输出：2, nums = [2,2]
def ArrayListNewLen(nums,val):
    result_list = []
    for i in nums:
        if i == val:
            continue
        else:
            result_list.append(i)
    return result_list
# nums = [3,2,2,3]
# val = 3
# print(ArrayListNewLen(nums, val))



# 6、给定一个排序数组和一个目标值，在数组中找到目标值，并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。
# 示例 1:
# 输入: nums = [1,3,5,6], target = 5
# 输出: 2
# 示例 2:
# 输入: nums = [1,3,5,6], target = 2
# 输出: 1
# 示例 3:
# 输入: nums = [1,3,5,6], target = 7
# 输出: 4
def TargetValue(nums,target):
    for i in range(len(nums)):
        if nums[i] >= target:
            return i
    return len(nums)
# nums = [1,3,5,6]
# target = 7
# print(TargetValue(nums, target))

# 7、给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息，信息用长度为 15 的字符串表示，表示方式如下：
# 前十个字符是乘客的手机号码。
# 接下来的一个字符是乘客的性别。
# 接下来两个字符是乘客的年龄。
# 最后两个字符是乘客的座位号。
# 请你返回乘客中年龄 严格大于 60 岁 的人数
#
# 示例 1：
# 输入：details = ["7868190130M7522","5303914400F9211","9273338290F4010"]
# 输出：2
# 解释：下标为 0 ，1 和 2 的乘客年龄分别为 75 ，92 和 40 。所以有 2 人年龄大于 60 岁
# 示例 2：
# 输入：details = ["1313579440F2036","2921522980M5644"]
# 输出：0
# 解释：没有乘客的年龄大于 60 岁。
def PeopleOver60YearsOld(details):
    age_list = []
    for i in details: # "7868190130M7522","5303914400F9211","9273338290F4010"
        if int(i[11:13]) > 60:
            age_list.append(i[11:13])
    return f"一共有{len(age_list)}人大于60"


# print(PeopleOver60YearsOld(["7868190130M7522", "5303914400F9211", "9273338290F4010" , "5303914400F6111"]))



# 8、写函数监测用户传入的对象（字符，列表，元组）的每一个元素是否有空内容
def MonitoringObjects(Object):
    if Object:
        for i in Object:
            if i == "":
                print("传入的对象内有空的值")
    else:
        print("传入的对象为空")

# input("请输入")


# MonitoringObjects([12,34,56,"",])
# MonitoringObjects([])
# MonitoringObjects("")
# MonitoringObjects("1")
# MonitoringObjects((1,2,3))
# MonitoringObjects(())




# 9、 随机生成20个学生的成绩; 判断这20个学生成绩的等级;
#  A：（90~100） B：（80~89） C：80以下
def student_score():
    import random
    score_list = []
    result_list = []
    for i in range(20):
        random_num = random.randint(79,100)
        score_list.append(random_num)
    for i in score_list:
        if i >=90 and i <=100:
            result_list.append({"A":i})
        elif i >=80 and i <=89:
            result_list.append({"B": i})
        elif i <80:
            result_list.append({"C": i})
    return result_list

# print(student_score())

# 10、编写一个用户登录函数（用户名密码提前设置）；
# 返回用户登录成功或者失败的结果；
user_info = {"user":"admin","pwd":"123456"}
def login(user,pwd):
    if user == "admin" and pwd =="123456":
        print("登录成功！")
    else:
        print("登录失败")

# login(user_info['user'],user_info['pwd'])
# login("小天才","范庆才")

